JM> #2: TP 6 is not useless. Looking at it without comparing it to
JM> anything else, and it is a great compiler, etc. However, there are
JM> some that are much better - namely TP 5.0 and TP 5.5.
Previously I had thought that you were complaining about the IDE. Now you
are complaining about the compiler and yet I don't recall ever seeing one
message from you detailing any problems with the compiler.
JM> #3: That is why I tried to make it clear that my statement is
JM> probably the minority opinion. (I'm beginning to wonder about that,
JM> though.)...
There are exactly THREE contributors (I'll make that four because Ping has
returned! even though it is months since he mentioned it) who regularly complainabout TP6 and three of those four are only complaining about the IDE, not
the compiler.
There are many who have countered with opposing opinions. I have no problems
with what you do/do not like about TP6IDE... However it is becoming close
to an echo-killer because of the frequency of the same old theme. I'd like
to see the subject
cooled somewhat - it is becoming boring to many.
JM> My advise was absolutely impartial. It is based entirely on the facts
JM> of TP 5.5 vs 6.0. I have nothing to gain either way, except that if
JM> enough people realize how bad 6.0 is compared to 5.5 then maybe
The above comments just prove how partial your advice was, not how impartial!
I'd like to hear about these "facts" on how TP5.5 is better than TP6 but
with no reference to the IDE features which are a highly personal and subjectivelike/dislike thing and, for me and many others judging from my netmail about
this, should
have no bearing on the debate.
If you want to refer to the IDE then there is absolutely no doubt that the
TP6 IDE is *vastly* superior in almost every way to the TP5 IDE. Whether
you like the new features or not, and whether the fact that it is a memory
hog and is better
suited to the more powerful and greater capacity machines, is an *entirely*
different and very subjective question.
Turbo Vision is another story. Borland could quite easily have chosen to
include it only in the Professional Pack. The fact that they didn't is to
their credit. Once any developer develops a large application with TV and
overcomes the learning
curve in so doing, his/her productivity (which you make a lot of comments
about) will increase enormously. TV alone makes the upgrade essential to
anyone even remotely interested in productivity.
I just wish I had pulled my head out of the sand earlier! :-)
TeeCee
* Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
WW> take a look at page 59 of the TP 6.0 Library reference....
WW> And I quote.
WW> " Restrictions: The largest block that can be allocated
WW> on the heap at one time is 65,521 bytes (64k-$F). If the
WW> heap is not fragmented, for example at the beginning of a
WW> program, succesive calls to GetMem returns neighboring
WW> blocks of memory. "
WW> Now I ran a test and it looks as though TP will allow you
WW> to actually allocate 65535 bytes on the heap in one shot. I
WW> did so and I wrote numbers to it all the way to the end and
WW> it did not integer wrap. At that point I do not know why
WW> borland says that 65,521 is the limit. Maybe someone from
WW> Borland could answer this..... As it stands though, since
WW> 15 bytes is not worth the risk I am going to stick with
WW> Borlands recomendations......
This was discussed here some time back. Since TP6 came out with its improved
heap handling methods the manual should have been changed to indicate that
structures on the heap were now permissable up to 65528 bytes in size. Even
so integer
wrap will not affect you unless the offset of the structure is 8 (in TP6
it will always be 0 or 8). As the heap always starts at a paragraph boundary,
the only way a structure can get an offset of eight is if a variable of a
size where sizeof(The_variable)
mod 16 is in
the range 1 to 8.
Obviously this makes TP6 far safer than TP5 where a structure could have
an offset ranging from 0..15. However you are very sensible to follow Borland'sguidelines, that way you will be safe and any source code you distribute
will also be
safe with TP4,5.0 and 5.5.
TeeCee
* Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
KB> This space stays allocated until you use the DISPOSE
KB> procedure.
KB> New and Dispose require a lot of programming discipline to
KB> operate properly. Whereas heap space may be semingly
KB> arbitrary, its allocation is quite linear and functions like
KB> a stack. Dispose'ing of pointers must be done in reverse
KB> order of the New'ing them.
An excellent explanation of dynamic memory and a linked list Ken. However...
I disagree with the last sentence of the above excerpt. Pointers may be disposedof in any order the program/mer sees fit. Obviously there are certain caveats
to this in the case of linked lists but the point is it can be done. If
a pointer
is disposed of before a pointer that was initialised after it is disposed,
no problems occur other than an unallocated "hole" in the heap. This hole
is not lost however as it becomes part of the free list linked list and can
be re-allocated
by the heap manager at any
time.
Obviously a good programmer will try and adopt methods that minimise this
heap fragmentation but there are times that it is unavoidable.
TeeCee
* Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
JK> I've never heard of anyone having a Turbo Pascal Virus, but
JK> I do have the source code to the AIDS Virus [written
JK> originally in Turbo Pascal 3.01] if anyone wishes me to post
JK> it..
Anyone posting virus code in this echo will immediately be asked to go elsewhere(with no prior warning given) even if the purpose is innocent. There are
too many people already with the capability to write these things and we
don't want to
extend that unnecessarily.
Trevor Carlsen
Moderator.
* Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)